home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48hor1
/
dsort.doc
< prev
next >
Wrap
Text File
|
1995-03-31
|
4KB
|
119 lines
Author: Kevin Jessup August 20, 1990
The following three programs make up a very useful directory sorting utility.
Note that they are based on the infamous and painfully slow bubble sort
algorithm. If you have a large directory, the programs may take a couple
of minutes to execute. It still is a lot faster that sorting your directory
manually. Hope you like them!
Kevin Jessup
9118 N. 85th St.
Milwaukee, WI 53224
Office: (414) 362-2020
Home: (414) 355-9752
********************************************************************************
File name: VLPARSE
Bytes: 184
Ckecksum: 9754 (HEX)
Function: VLPARSE will take a list of variables and either delete or save
all variables of a given type from that list.
Inputs: Level three: LIST of variables
Level two: object type (see page 97 of manual)
Level one: 0 (to save the variables) or 1 (to delete the variables)
Outputs: The parsed LIST.
Example 1:
1) From your top level directory, execute the VARS command.
2) A list of variables should now be on the stack.
3) Enter 15 on the stack (this specifies a directory object).
4) Enter 0 on the stack (this tell VLPARSE to save all occurences
of the object).
5) Execute VLPARSE.
6) A list of all directory objects remains on the stack.
Example 2:
Get a list of all variables in the current directory that do NOT
contain PROGRAM objects.
1) Execute the VARS command.
2) Enter the real number 8 (specifies a program object).
3) Enter the real number 1 (delete variables of specified type).
4) Execute VLPARSE.
5) A list of all variables in the current directory that are NOT
program objects remains on the STACK. If all objects in the
current directory WERE program objects, the list is empty.
Program Listing:
%%HP: T(3)A(D)F(.);
\<< { } \-> l t d n
\<<
IF l SIZE DUP
THEN 1 SWAP
FOR i 'l' i GET
IF VTYPE t == d XOR
THEN n 'l' i GET 1 \->LIST + 'n' STO
END
NEXT
ELSE DROP
END n
\>>
\>>
********************************************************************************
File name: ALPHSORT
Bytes: 154
Checksum: E915 (HEX)
Function: Sort a list of variables alphabeticly.
This is the same bubble sort function that is on page 561 of the
manuals except that a string conversion is performed on the
list objects before the comparison. The bubble sort is probably
the slowest of the numerous sorting routines available. If
anyone has seen an implementation of the shell sort or quick sort
algorithms on an HP48SX, please let me know! Right now I have
neither the time nor the inclination to implement them.
Inputs: List of objects on level one.
Outputs: Alphabeticaly sorted list.
Program listing:
%%HP: T(3)A(D)F(.);
\<< DUP SIZE 1 - 1
FOR j 1 j
FOR k k GETI \-> n1
\<< GETI \-> n2
\<< DROP
IF n1 \->STR n2 \->STR >
THEN k n2 PUTI n1 PUT
END
\>>
\>>
NEXT -1
STEP
\>>
********************************************************************************
File name: DSORT (Directory SORT)
Bytes: 101.5
Ckecksum: ED34 (HEX)
Function: DSORT will sort a directory alphabeticly. Sub-directores will
be sorted first, followed by all other objects. Note that
DSORT calls the above two progams as subroutines.
Inputs: None
Outputs: The current directory is sorted. The actual variables within the
subdirectories are NOT sorted.
Program listing:
%%HP: T(3)A(D)F(.);
\<< VARS 15 0 VLPARSE ALPHSORT VARS 15 1 VLPARSE ALPHSORT + ORDER
\>>
***********************************[END]****************************************